package cn.iocoder.yudao.module.system.dal.dataobject.patentapplication;
import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import lombok.*;
import java.time.LocalDate;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;


/**
 * 会员专利申请 DO
 *
 * @author 芋道源码
 */
@TableName(value="member_patent_application", autoResultMap=true)
@KeySequence("member_patent_application_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PatentApplicationDO extends TenantBaseDO {

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 答复期限
     */
    @TableField(value="response_deadline")
    private LocalDate responseDeadline;
    /**
     * 案件id
     */
    @TableField(value="case_id")
    private Long caseId;
    /**
     * 上传日期
     */
    @TableField(value="upload_date")
    private LocalDate uploadDate;
    /**
     * 普通用户id
     */
    @TableField(value="user_id")
    private Long userId;
    /**
     * 其他文件
     */
    @TableField(value="review_materials_files",typeHandler= StringListTypeHandler.class)
    private List<String>reviewMaterialsFiles=new ArrayList<>();
    /**
     * 返稿文件
     */
    @TableField(value="return_files",typeHandler= StringListTypeHandler.class)
    private List<String>returnFiles=new ArrayList<>();
    /**
     * 费用缴纳状态
     * payment_status
     * 1,已缴年费
     * 2,未缴年费
     * 3,已缴申请费
     * 4,未缴申请费
     */
    @TableField(value="payment_status")
    private String paymentStatus;
    /**
     * 案件状态
     * case_status
     * 1,撰写中
     * 2,待提交
     * 3,待补充
     * 4,受理
     * 5,初审中
     * 6,实质审查中
     * 7,审查答复中
     * 8,补正中
     * 9,驳回
     * 10,代办登记
     * 11,授权
     * 12,未缴费过期
     * 13,恢复中
     * 14,转让中
     */
    @TableField(value="case_status")
    private String caseStatus;

}